﻿namespace Sobachka

// parser which does not present witness

type Recognizer<'symbol> = Recognizer of ('symbol -> Step)

module Recognizer =

    open Sobachka.Prelude

    // как правильно сделать парсер, который сможет скушать несколько символов?

    let satisfy p = 
        Recognizer (fun a -> match p a with
                             | true  -> Success
                             | false -> Failure)